package com.zxn.kotlin.list

data class Person(val id: Int, val name: String)

fun main() {
    val list = listOf(
        Person(1, "Alice"),
        Person(2, "Bob"),
        Person(3, "Charlie"),
        Person(4, "David")
    )

    val newList = list.toList()

    // 将 id 为 3 的元素放到第一位
    val targetId = 4
    val sortedList = newList.sortedBy { it.id != targetId }

    println(sortedList)
    // 输出: [Person(id=3, name=Charlie), Person(id=1, name=Alice), ...]
}


//fun main() {
//    var chooseTypeList = listOf("拍摄身份证", "相册中选择")
//     val index = chooseTypeList.indexOf("NFC 3秒读取身份证")
//     println(index)
//}

//import com.lanto.water.entity.DrinkChooseEntity
//import com.lanto.water.model.bean.WaterInfo


/**
 *  集合的常见操作.
 */
//class TestList {
//
//}

//fun main() {
//    val list = listOf(1, 3, 4, 5, 10, 8, 2)
//    val newList = list.mapIndexed { index, item ->
//        "第$index 个元素是$item"
//    }
//    newList.forEach(::println)
//}

//fun main() {
//    val list = listOf(1, 3, 5)
//    val list1 = mutableListOf("0")
//    list.mapIndexedTo(list1) { index, item ->
//        "第$index 个元素是$item"
//    }
//    list1.add("10")
//    list1.forEach(::println)
//}

//fun main() {
//    val groupList = listOf(WaterInfo(listOf(
//            WaterInfo(listOf(), "常见0"),
//            WaterInfo(listOf(), "常见1")),
//            "常见"),
//            WaterInfo(listOf(WaterInfo(listOf(), "蛋白0"),
//                    WaterInfo(listOf(), "蛋白1")),
//                    "蛋白"))
//    val newList = mutableListOf<DrinkChooseEntity>()
//    groupList.flatMap {
//        it.childes.mapIndexedTo(newList) { index, item ->
//            DrinkChooseEntity(DrinkChooseEntity.ITEM_DRINK, item)
//        }.also {
//            newList.add(DrinkChooseEntity())
//        }
//    }
//    newList.forEach {
//        println(it.itemType)
//        println(it.data?.label)
//    }
//}

//fun main() {
//    val list = listOf(1..8,
//            2..5,
//            10..15)
//    val flatList = list.flatMapIndexed { index, value ->
//        value.map { number ->
//            "$index,No.$number"
//        }
//    }
//    flatList.forEach(::println)
//}